/* Copyright JS Foundation and other contributors, http://js.foundation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * This file is automatically generated by the unicode_ranges.py script
 * from UnicodeData-3.0.0.txt. Do not edit!
 */

/**
 * Character interval starting points for the unicode letters.
 *
 * The characters covered by these intervals are from
 * the following Unicode categories: Lu, Ll, Lt, Lm, Lo, Nl
 */
static const uint16_t jerry_unicode_letter_interval_sps[] JERRY_CONST_DATA =
{
  0x00c0, 0x00d8, 0x00f8, 0x01f8, 0x0222, 0x0250, 0x02b0, 0x02bb, 0x02d0, 0x02e0,
  0x0388, 0x038e, 0x03a3, 0x03d0, 0x03da, 0x0400, 0x048c, 0x04c7, 0x04cb, 0x04d0,
  0x04f8, 0x0531, 0x0561, 0x05d0, 0x05f0, 0x0621, 0x0640, 0x0671, 0x06e5, 0x06fa,
  0x0712, 0x0780, 0x0905, 0x0958, 0x0985, 0x098f, 0x0993, 0x09aa, 0x09b6, 0x09dc,
  0x09df, 0x09f0, 0x0a05, 0x0a0f, 0x0a13, 0x0a2a, 0x0a32, 0x0a35, 0x0a38, 0x0a59,
  0x0a72, 0x0a85, 0x0a8f, 0x0a93, 0x0aaa, 0x0ab2, 0x0ab5, 0x0b05, 0x0b0f, 0x0b13,
  0x0b2a, 0x0b32, 0x0b36, 0x0b5c, 0x0b5f, 0x0b85, 0x0b8e, 0x0b92, 0x0b99, 0x0b9e,
  0x0ba3, 0x0ba8, 0x0bae, 0x0bb7, 0x0c05, 0x0c0e, 0x0c12, 0x0c2a, 0x0c35, 0x0c60,
  0x0c85, 0x0c8e, 0x0c92, 0x0caa, 0x0cb5, 0x0ce0, 0x0d05, 0x0d0e, 0x0d12, 0x0d2a,
  0x0d60, 0x0d85, 0x0d9a, 0x0db3, 0x0dc0, 0x0e01, 0x0e32, 0x0e40, 0x0e81, 0x0e87,
  0x0e94, 0x0e99, 0x0ea1, 0x0eaa, 0x0ead, 0x0eb2, 0x0ec0, 0x0edc, 0x0f40, 0x0f49,
  0x0f88, 0x1000, 0x1023, 0x1029, 0x1050, 0x10a0, 0x10d0, 0x1100, 0x115f, 0x11a8,
  0x1200, 0x1208, 0x124a, 0x1250, 0x125a, 0x1260, 0x128a, 0x1290, 0x12b2, 0x12b8,
  0x12c2, 0x12c8, 0x12d0, 0x12d8, 0x12f0, 0x1312, 0x1318, 0x1320, 0x1348, 0x13a0,
  0x1401, 0x1501, 0x1601, 0x166f, 0x1681, 0x16a0, 0x1780, 0x1820, 0x1880, 0x1e00,
  0x1ea0, 0x1f00, 0x1f18, 0x1f20, 0x1f48, 0x1f50, 0x1f5f, 0x1f80, 0x1fb6, 0x1fc2,
  0x1fc6, 0x1fd0, 0x1fd6, 0x1fe0, 0x1ff2, 0x1ff6, 0x210a, 0x2119, 0x212a, 0x212f,
  0x2133, 0x2160, 0x3005, 0x3021, 0x3031, 0x3038, 0x3041, 0x309d, 0x30a1, 0x30fc,
  0x3105, 0x3131, 0x31a0, 0xa000, 0xa100, 0xa200, 0xa300, 0xa400, 0xf900, 0xfa00,
  0xfb00, 0xfb13, 0xfb1f, 0xfb2a, 0xfb38, 0xfb40, 0xfb43, 0xfb46, 0xfbd3, 0xfcd3,
  0xfd50, 0xfd92, 0xfdf0, 0xfe70, 0xfe76, 0xff21, 0xff41, 0xff66, 0xffc2, 0xffca,
  0xffd2, 0xffda
};

/**
 * Character lengths for the unicode letters.
 *
 * The characters covered by these intervals are from
 * the following Unicode categories: Lu, Ll, Lt, Lm, Lo, Nl
 */
static const uint8_t jerry_unicode_letter_interval_lengths[] JERRY_CONST_DATA =
{
  0x0016, 0x001e, 0x00ff, 0x0027, 0x0011, 0x005d, 0x0008, 0x0006, 0x0001, 0x0004,
  0x0002, 0x0013, 0x002b, 0x0007, 0x0019, 0x0081, 0x0038, 0x0001, 0x0001, 0x0025,
  0x0001, 0x0025, 0x0026, 0x001a, 0x0002, 0x0019, 0x000a, 0x0062, 0x0001, 0x0002,
  0x001a, 0x0025, 0x0034, 0x0009, 0x0007, 0x0001, 0x0015, 0x0006, 0x0003, 0x0001,
  0x0002, 0x0001, 0x0005, 0x0001, 0x0015, 0x0006, 0x0001, 0x0001, 0x0001, 0x0003,
  0x0002, 0x0006, 0x0002, 0x0015, 0x0006, 0x0001, 0x0004, 0x0007, 0x0001, 0x0015,
  0x0006, 0x0001, 0x0003, 0x0001, 0x0002, 0x0005, 0x0002, 0x0003, 0x0001, 0x0001,
  0x0001, 0x0002, 0x0007, 0x0002, 0x0007, 0x0002, 0x0016, 0x0009, 0x0004, 0x0001,
  0x0007, 0x0002, 0x0016, 0x0009, 0x0004, 0x0001, 0x0007, 0x0002, 0x0016, 0x000f,
  0x0001, 0x0011, 0x0017, 0x0008, 0x0006, 0x002f, 0x0001, 0x0006, 0x0001, 0x0001,
  0x0003, 0x0006, 0x0002, 0x0001, 0x0003, 0x0001, 0x0004, 0x0001, 0x0007, 0x0021,
  0x0003, 0x0021, 0x0004, 0x0001, 0x0005, 0x0025, 0x0026, 0x0059, 0x0043, 0x0051,
  0x0006, 0x003e, 0x0003, 0x0006, 0x0003, 0x0026, 0x0003, 0x001e, 0x0003, 0x0006,
  0x0003, 0x0006, 0x0006, 0x0016, 0x001e, 0x0003, 0x0006, 0x0026, 0x0012, 0x0054,
  0x00ff, 0x00ff, 0x006b, 0x0007, 0x0019, 0x004a, 0x0033, 0x0057, 0x0028, 0x009b,
  0x0059, 0x0015, 0x0005, 0x0025, 0x0005, 0x0007, 0x001e, 0x0034, 0x0006, 0x0002,
  0x0006, 0x0003, 0x0005, 0x000c, 0x0002, 0x0006, 0x0009, 0x0004, 0x0003, 0x0002,
  0x0006, 0x0023, 0x0002, 0x0008, 0x0004, 0x0002, 0x0053, 0x0001, 0x0059, 0x0002,
  0x0027, 0x005d, 0x0017, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x008c, 0x00ff, 0x002d,
  0x0006, 0x0004, 0x0009, 0x000c, 0x0004, 0x0001, 0x0001, 0x006b, 0x00ff, 0x006a,
  0x003f, 0x0035, 0x000b, 0x0002, 0x0086, 0x0019, 0x0019, 0x0058, 0x0005, 0x0005,
  0x0005, 0x0002
};

/**
 * Those unicode letter characters that are not inside any of
 * the intervals specified in jerry_unicode_letter_interval_sps array.
 *
 * The characters are from the following Unicode categories:
 * Lu, Ll, Lt, Lm, Lo, Nl
 */
static const uint16_t jerry_unicode_letter_chars[] JERRY_CONST_DATA =
{
  0x00aa, 0x00b5, 0x00ba, 0x02ee, 0x037a, 0x0386, 0x038c, 0x0559, 0x06d5, 0x0710,
  0x093d, 0x0950, 0x09b2, 0x0a5e, 0x0a8d, 0x0abd, 0x0ad0, 0x0ae0, 0x0b3d, 0x0b9c,
  0x0cde, 0x0dbd, 0x0e84, 0x0e8a, 0x0e8d, 0x0ea5, 0x0ea7, 0x0ebd, 0x0ec6, 0x0f00,
  0x1248, 0x1258, 0x1288, 0x12b0, 0x12c0, 0x1310, 0x1f59, 0x1f5b, 0x1f5d, 0x1fbe,
  0x207f, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x3400, 0x4db5, 0x4e00,
  0x9fa5, 0xac00, 0xd7a3, 0xfb1d, 0xfb3e, 0xfe74
};

/**
 * Character interval starting points for non-letter character
 * that can be used as a non-first character of an identifier.
 *
 * The characters covered by these intervals are from
 * the following Unicode categories: Nd, Mn, Mc, Pc
 */
static const uint16_t jerry_unicode_non_letter_ident_part_interval_sps[] JERRY_CONST_DATA =
{
  0x0300, 0x0360, 0x0483, 0x0591, 0x05a3, 0x05bb, 0x05c1, 0x064b, 0x0660, 0x06d6,
  0x06df, 0x06e7, 0x06ea, 0x06f0, 0x0730, 0x07a6, 0x0901, 0x093e, 0x0951, 0x0962,
  0x0966, 0x0981, 0x09be, 0x09c7, 0x09cb, 0x09e2, 0x09e6, 0x0a3e, 0x0a47, 0x0a4b,
  0x0a66, 0x0a81, 0x0abe, 0x0ac7, 0x0acb, 0x0ae6, 0x0b01, 0x0b3e, 0x0b47, 0x0b4b,
  0x0b56, 0x0b66, 0x0b82, 0x0bbe, 0x0bc6, 0x0bca, 0x0be7, 0x0c01, 0x0c3e, 0x0c46,
  0x0c4a, 0x0c55, 0x0c66, 0x0c82, 0x0cbe, 0x0cc6, 0x0cca, 0x0cd5, 0x0ce6, 0x0d02,
  0x0d3e, 0x0d46, 0x0d4a, 0x0d66, 0x0d82, 0x0dcf, 0x0dd8, 0x0df2, 0x0e34, 0x0e47,
  0x0e50, 0x0eb4, 0x0ebb, 0x0ec8, 0x0ed0, 0x0f18, 0x0f20, 0x0f3e, 0x0f71, 0x0f86,
  0x0f90, 0x0f99, 0x102c, 0x1036, 0x1040, 0x1056, 0x1369, 0x17b4, 0x17e0, 0x1810,
  0x203f, 0x20d0, 0x302a, 0x3099, 0xfe20, 0xfe33, 0xfe4d, 0xff10
};

/**
 * Character interval lengths for non-letter character
 * that can be used as a non-first character of an identifier.
 *
 * The characters covered by these intervals are from
 * the following Unicode categories: Nd, Mn, Mc, Pc
 */
static const uint8_t jerry_unicode_non_letter_ident_part_interval_lengths[] JERRY_CONST_DATA =
{
  0x004e, 0x0002, 0x0003, 0x0010, 0x0016, 0x0002, 0x0001, 0x000a, 0x0009, 0x0006,
  0x0005, 0x0001, 0x0003, 0x0009, 0x001a, 0x000a, 0x0002, 0x000f, 0x0003, 0x0001,
  0x0009, 0x0002, 0x0006, 0x0001, 0x0002, 0x0001, 0x0009, 0x0004, 0x0001, 0x0002,
  0x000b, 0x0002, 0x0007, 0x0002, 0x0002, 0x0009, 0x0002, 0x0005, 0x0001, 0x0002,
  0x0001, 0x0009, 0x0001, 0x0004, 0x0002, 0x0003, 0x0008, 0x0002, 0x0006, 0x0002,
  0x0003, 0x0001, 0x0009, 0x0001, 0x0006, 0x0002, 0x0003, 0x0001, 0x0009, 0x0001,
  0x0005, 0x0002, 0x0003, 0x0009, 0x0001, 0x0005, 0x0007, 0x0001, 0x0006, 0x0007,
  0x0009, 0x0005, 0x0001, 0x0005, 0x0009, 0x0001, 0x0009, 0x0001, 0x0013, 0x0001,
  0x0007, 0x0023, 0x0006, 0x0003, 0x0009, 0x0003, 0x0008, 0x001f, 0x0009, 0x0009,
  0x0001, 0x000c, 0x0005, 0x0001, 0x0003, 0x0001, 0x0002, 0x0009
};

/**
 * Those non-letter characters that can be used as a non-first
 * character of an identifier and not included in any of the intervals
 * specified in jerry_unicode_non_letter_ident_part_interval_sps array.
 *
 * The characters are from the following Unicode categories:
 * Nd, Mn, Mc, Pc
 */
static const uint16_t jerry_unicode_non_letter_ident_part_chars[] JERRY_CONST_DATA =
{
  0x05bf, 0x05c4, 0x0670, 0x0711, 0x093c, 0x09bc, 0x09d7, 0x0a02, 0x0a3c, 0x0abc,
  0x0b3c, 0x0bd7, 0x0d57, 0x0dca, 0x0dd6, 0x0e31, 0x0eb1, 0x0f35, 0x0f37, 0x0f39,
  0x0fc6, 0x18a9, 0x20e1, 0x30fb, 0xfb1e, 0xff3f, 0xff65
};

/**
 * Unicode separator character interval starting points from Unicode category: Zs
 */
static const uint16_t jerry_unicode_separator_char_interval_sps[] JERRY_CONST_DATA =
{
  0x2000
};

/**
 * Unicode separator character interval lengths from Unicode category: Zs
 */
static const uint8_t jerry_unicode_separator_char_interval_lengths[] JERRY_CONST_DATA =
{
  0x000b
};

/**
 * Unicode separator characters that are not in the
 * jerry_unicode_separator_char_intervals array.
 *
 * Unicode category: Zs
 */
static const uint16_t jerry_unicode_separator_chars[] JERRY_CONST_DATA =
{
  0x1680, 0x180e, 0x202f, 0x205f, 0x3000
};

